本屆 #JCConf 邀請到 Junli Xiao 分享 當一種 Big5 不夠用:如何優雅地重構 JDK 底層支援動態難字集
講題簡介:
在臺灣的企業與政府大型舊系統中,處理 Big5 擴充難字與自造字一直是揮之不去的 IT 噩夢。當系統需要同時介接多個外部業務中心,且每個中心都維護著各自專屬、甚至相互衝突的難字定義時,傳統的字元處理機制便面臨束縛。由於底層框架在設計上屬於全域共享的靜態規格,導致多套難字對映無法在同一個執行環境中並存。
為了解決這個困境,許多專案被迫採取不優雅的客製化手段:在系統的 I/O 邊界撰寫大量繁瑣的低階程式碼,手動從串流中讀取原始位元組,再透過密密麻麻的條件式硬編碼去判斷高低位元組的數值範圍,符合特定範圍後才進行暴力查表或字串代換。這種遍布於程式邏輯的低階位元組處理,不僅讓程式碼破碎、技術債高昂,維護成本更是災難性的。
本場短講將分享一套優雅的架構重構方案——動態字元集機制。這套機制將目光投向 Java 核心,直接重構與翻轉底層的字元編解碼引擎,將原本硬編碼在各處的位元組判斷,全面收攏並提升至標準字元處理層。
這套機制的創新在於將原本官方硬編碼、全域共享的靜態結構,大刀闊斧改為「動態實例化」架構,讓不同的業務中心在執行期各自擁有完全獨立的字元集實例,完美達成多客戶隔離。同時,字元集在初始化時會動態讀取外部的 Excel 難字對映表,將其與標準基礎字集融合成一體化的對照規格,專案從此只需呼叫標準 API 即可自動完成查表。最後,機制更設計了特製的混血擴充區塊,當遇到超出常規範圍的超大 Unicode 罕見字時,會自動分流至獨立的輔助對映中,兼顧了絕大多數常用字的原生高速查表效能,又賦予了系統處理超大難字的無限擴充彈性。
透過這場 15 分鐘的技術分享,聽眾將能掌握如何將一個僵化的底層元件,重構為具備高度彈性的動態資料驅動架構,徹底告別手動解析位元組與維護混亂編碼邏輯的痛苦。
購票請洽:
https://twjug.kktix.cc/events/jcconf-2026
#JCConf #JCConf2026 #Java #Big5